The widespread use of the world-wide web along with high bandwidth transmissions, the proliferation of web browsers on personal computers, and increased use of internet-ready handheld devices has led to stringent availability requirements on database systems. Availability refers to data being accessible for reading and writing purposes using a procedural language that can manipulate data, such as structured query language (SQL). With increased availability requirements, most critical databases must allow for information to be searched, retrieved, and updated outside of conventional business hours. As a result, businesses and other enterprises managing databases have been challenged to address around the clock data availability requirements.
One approach to build high availability systems is to construct a replica of a source database system to a target database system. Such a procedure may be desired to provide access to a database system in the event of a planned or unplanned outage. Additionally, retaining several copies of a system database permits multiple system applications to manage data independently. Replication of a system database is commonly achieved by making an initial copy of the data, an instantiation, and subsequently applying the database's transaction (redo/undo) logs to propagate the on going changes from the source to the target database.
However, current techniques designed to construct the initial copy of the source database commonly require the source database or application to be shutdown during data extraction, or to implement some form of “locking” or “quiescing” on the database. Quiescing is the act of making data, or a portion of the data, unavailable for read or write access. Alternatively, other techniques restrict the data to read-only access while the replica is being constructed. Nevertheless, all of these techniques have a measurable impact on the availability of data in a system database because they restrict access to the data, or a portion thereof. Therefore, it would be desirable to provide for a method to construct a replica of a database without affecting system performance or the availability of data.